package com.bzkj.msfx.service;

import com.bzkj.common.core.domain.AjaxResult;

import java.util.List;
import java.util.Map;

/**
 * @projectName: btyy
 * @package: com.bzkj.btyy.service
 * @className: WareHouseOutService
 * @description: 出入库单服务层接口
 * @author: C1309
 * @createDate: 2024年02月19日
 * @version: v1.0
 */
public interface WareHouseOutService {
    /**
     * 查询PDA出入库单据
     *
     * @param beginDate     开始时间
     * @param endDate       结束时间
     * @param flag          单据状态

     * @param userId        用户编号
     * @param billsId       单据编号
     * @param billsType     单据类型
     * @return 查询结果
     */
    AjaxResult queryBillsList(String beginDate,
                              String endDate,
                              String flag,
                              String userId,
                              String billsId,
                              String billsType);

    /**
     * 查询PDA出入库单据详情
     *
     * @param billsId 单据编号
     * @return 查询结果
     */
    AjaxResult queryBillsDetailList(String billsId);

    /**
     * 查询工厂列表
     *
     * @return 查询结果
     */
    AjaxResult queryFactoryList();

    /**
     * 查询PDA出入库单据详情(生成xml用）
     *
     * @param billsIds 单据编号
     * @return 查询结果
     */
    AjaxResult billsToXml(List<String> billsIds);

    /**
     * 删除订单
     *
     * @param billsId       订单id
     * @param businessEntId 工厂id
     * @return 删除结果
     */
    AjaxResult redoBills(String billsId, String businessEntId);

    /**
     * 查询用户列表
     *
     * @param typeId 查询类型（如果typeId为1查询全部，如果typeId为部门Id查询该部门下的用户）
     * @return 查询结果
     */
    AjaxResult getUserList(String typeId);

    /**
     * 追溯码替换
     *
     * @param params 旧码
     * @return 替换结果
     */
    AjaxResult changeCode(Map<String, String> params);

    /**
     * 删除订单
     *
     * @param billsId       订单id
     * @param businessEntId 工厂id
     * @return 删除结果
     */
    AjaxResult delBillsId(String billsId, String businessEntId);
}
